// 加载状态的类库
import { createStore } from '@naturefw/nf-state'

export default createStore({
  // 读写状态，直接使用 reactive
  state: {
    // 网站信息
    projectInfo: {
      ver: 1.0, // 版本信息
      projectId: '1000', // 暂时没啥用
      title: 'nf-press-view ！',
      description: '这是一个在线编辑文档的小工具',
    },
    // 导航列表
    naviList: [
      { "naviId": "1010", "text": "指南", "link": "menu" },
      { "naviId": "1080", "text": "Gitee", "link": "https://gitee.com/nfpress/nf-press-edit" },
      { "naviId": "1090", "text": "在线演示", "link": "https://nfpress.gitee.io/nf-press-edit/" }
    ],
    // 菜单列表
    menuList: [
      {
        "naviId": "1010",
        "ver": 1.0,
        "menus": []
      }
    ],
    // 当前激活的各种信息
    current: {
      ver: 1.0, // 版本信息
      naviId: '', // 当前导航项ID，据此加载菜单列表
      // 面包屑，存放激活的每一级菜单的ID和名称，以及path
      breadcrumb: [],
      menuInfo: { // 当前激活的菜单项
        menuId: '',
        ver: 1.0,
        text: '', // 激活的菜单名称
      },
      docInfo: { // 当前激活的文档内容
        md: '# 这是标题', // 编辑文档的内容
        ver: 1.0,
        time: '', // 发布时间
        lastTime: '', // 最后修改时间
        code: {
          js:'',
          template: '',
          style: ''
        }, // 一个文档包含的可以运行的代码，js 和 template
        comp: {} // 一个文档包含的可以运行的组件 上一步、下一步
      }
    }
  },
  // 全局常量，使用 readonly 
  readonly:{
   
  },
  // 跟踪状态，用 proxy 给 reactive 套娃
  track: {
   
  },
  // 可以给全局状态设置初始状态，同步数据可以直接在上面设置，如果是异步数据，可以在这里设置。
  init (state, read) {
    // console.log('状态-store', state)
  }
})